package br.usjt.dominio;

//
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import br.usjt.servico.DAOFactory;
import br.usjt.servico.IClienteDAO;

//
public class ClienteRepositorio {
	IClienteDAO daoCliente;
	DAOFactory fabrica;

	public ClienteRepositorio() {
		fabrica = DAOFactory.getDAOFactory(DAOFactory.MYSQL);
		daoCliente = fabrica.getClienteDAO();
	}
	public Cliente consulta(String cpf) {
		Cliente c = null;
		try {
			ResultSet rs = daoCliente.consulta(cpf);
			if (rs.next()) {
				c = new Cliente();
				try {
					c.setNome(rs.getString("nome"));
					c.setCPF(rs.getString("cpf"));
					c.setEndereco(rs.getString("endereco"));
					c.setTelefone(rs.getString("telefone"));
				} catch (Exception e) {
					System.out.println("cliente repositorio=" + e.getMessage());
				}
			}

		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}

		return c;

	}
	public ArrayList<Cliente> consultaNome(String nome) {
		ArrayList<Cliente> vetorClientes = new ArrayList<Cliente>();
		Cliente c = null;
		try {
			ResultSet rs = daoCliente.consultaNome("%" + nome + "%");
			while (rs.next()) {

				c = new Cliente();
				try {
					c.setNome(rs.getString("nome"));
					c.setCPF(rs.getString("cpf"));
					c.setEndereco(rs.getString("endereco"));
					c.setTelefone(rs.getString("telefone"));
					vetorClientes.add(c);
				} catch (Exception e) {
					System.out.println("cliente repositorio=" + e.getMessage());
				}
			}
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}
		return vetorClientes;
	}
	public String cadastra(Cliente c) {
		int rc = 0;
		rc = daoCliente.cadastra(c.getCPF(), c.getName(), c.getEndereco(),c.getTelefone());
		if (rc == 1) {
			return "true";
		} else {
			return daoCliente.getMessage();
		}
	}
	public String exclui(String cpf) {
		int rc = 0;
		rc = daoCliente.exclui(cpf);

		if (rc == 1) {
			return "true";
		} else {
			return daoCliente.getMessage();
		}
	}
	public String altera(Cliente c){
		int rc = 0;
		rc = daoCliente.altera(c.getCPF(), c.getName(), c.getEndereco(),c.getTelefone());

		if (rc == 1) {
			return "true";
		} else {
			return daoCliente.getMessage();
		}
	}
}
